*** Settings ***
Resource          ../Keywords/公共/公共关键字2.0.robot
Resource          ../Resources/Global_Variables.robot
Library           DateTime
Library           RequestsLibrary
Library           Collections
Library           String

*** Variables ***
${ReqDataFile}    ${CURDIR}${/}TS_创建license信息（鉴权管理）.conf
${RandomElement}    ${EMPTY}

*** Test Cases ***
创建license信息（鉴权管理）
    [Documentation]    *用例名称* 创建license信息（鉴权管理）
    ...
    ...    *用例编号* 804a49758c48460ca8f2c6c65b3ea48e
    ...
    ...    *用例版本* V1.0
    ...
    ...    *用例级别* P1
    ...
    ...    *用例类型* 自动化测试
    ...
    ...    *用例作者* liaodemingwx
    ...
    ...    *前置条件*
    ...
    ...    1. 无
    ...
    ...    *操作步骤*
    ...
    ...    所有参数正常取值，调用APP端鉴权查询接口
    ...
    ...    *预期结果*
    ...     创建license信息成功
    # 创建license信息（鉴权管理）
    # 获取当前时间的日、时、分并格式化为两位数
    ${current_day}=    Get Current Date    result_format=%d
    ${current_hour}=    Get Current Date    result_format=%H
    ${current_minute}=    Get Current Date    result_format=%M
    # 构建原始密码字符串
    ${original_passwd}=    Set Variable    TT${current_day}SS${current_hour}MM${current_minute}
    # 计算MD5加密值
    ${md5_passwd}=    Evaluate    hashlib.md5('${original_passwd}'.encode()).hexdigest()    modules=hashlib
    # 发送GET请求（示例地址需替换）
    Create Session    walle    http://39.156.3.47:19000
    ${response}=    发送Get请求    ${host}    /ugc-server/walle/manager/license/console/login    params=passwd=${md5_passwd}
    ${check_value}=    Get Substring    ${response.text}    0
    Set Global Variable    ${CHECK_GLOBAL}    ${check_value}
    &{header2}=    Create Dictionary    check=${CHECK_GLOBAL}   &{header1}
    Log    ${header2}
    ${response}    发送post请求    ${host}    /ugc-server/walle/manager/license/create?uid=test_user_1    data=&{create_data}    headers=&{header2}
    响应报文校验    ${response.text}    code == 0
    # 解析响应文本为JSON对象
    ${response_json}=    Evaluate    json.loads('''${response.text}''')    modules=json
    # 提取licenseId的值
    ${licenseId_value}=    Evaluate    ${response_json}['data']['licenseId']
#    将licenseId和header存入全局变量
    Set Global Variable    ${CHECK_GLOBAL1}    ${licenseId_value}
    Set Global Variable    ${GLOBAL_header2}        &{header2}


绑定license信息（鉴权管理）
    [Documentation]    *用例名称* 绑定license信息（鉴权管理）
    ...
    ...    *用例编号* 804a49758c48460ca8f2c6c65b3ea48e
    ...
    ...    *用例版本* V1.0
    ...
    ...    *用例级别* P1
    ...
    ...    *用例类型* 自动化测试
    ...
    ...    *用例作者* leitao1wx
    ...
    ...    *前置条件*
    ...
    ...    1. 无
    ...
    ...    *操作步骤*
    ...
    ...    所有参数正常取值，调用APP端鉴权查询接口
    ...
    ...    *预期结果*
    ...     绑定license信息成功
    # 绑定license信息（鉴权管理）
    # 生成随机值
    随机赋值变量    userId
    随机赋值变量    appName
    随机赋值变量    bundleId
    随机赋值变量    packageName
    随机赋值变量    macDevicePackage
    随机赋值变量    msDevicePackage
    &{edit_data1}=    Create Dictionary    userId=${userId}    appName=${appName}    bundleId=${bundleId}    packageName=${packageName}    macDevicePackage=${macDevicePackage}    msDevicePackage=${msDevicePackage}    licenseId=${CHECK_GLOBAL1}
    Log    ${edit_data1}
    ${response}=    发送post请求    ${host}    /ugc-server/walle/manager/license/edit?uid=test_user_1    data=&{edit_data1}    headers=&{GLOBAL_header2}
    响应报文校验    ${response.text}    code == 0




禁用license信息（鉴权管理）
    [Documentation]    *用例名称* 禁用license信息（鉴权管理）
    ...
    ...    *用例编号* 804a49758c48460ca8f2c6c65b3ea48e
    ...
    ...    *用例版本* V1.0
    ...
    ...    *用例级别* P1
    ...
    ...    *用例类型* 自动化测试
    ...
    ...    *用例作者* liaodemingwx
    ...
    ...    *前置条件*
    ...
    ...    1. 无
    ...
    ...    *操作步骤*
    ...
    ...    所有参数正常取值，调用APP端鉴权查询接口
    ...
    ...    *预期结果*
    ...     禁用license成功
    ${switch_data}  Create Dictionary    licenseId=${CHECK_GLOBAL1}
    ${response}     发送Post请求    ${host}     /ugc-server/walle/manager/license/switch?uid=test_user_1    data=${switch_data}    headers=${GLOBAL_header2}
    响应报文校验    ${response.text}  code==0





查询license信息禁用状态（鉴权管理）
    [Documentation]    *用例名称* 查询license信息（鉴权管理）
    ...
    ...    *用例编号* 804a49758c48460ca8f2c6c65b3ea48e
    ...
    ...    *用例版本* V1.0
    ...
    ...    *用例级别* P1
    ...
    ...    *用例类型* 自动化测试
    ...
    ...    *用例作者* liaodemingwx
    ...
    ...    *前置条件*
    ...
    ...    1. 无
    ...
    ...    *操作步骤*
    ...
    ...    所有参数正常取值，调用APP端鉴权查询接口
    ...
    ...    *预期结果*
    ...     查询license信息成功，并且禁用状态下status为0
    ${response}=    发送Get请求    ${host}    /ugc-server/walle/manager/license/query?userId=test_user_1&currentPage=1&pageSize=10    headers=&{GLOBAL_header2}
    # 验证响应状态码（可选）
    响应报文校验    ${response.text}      code == 0
    #获取status的值用于验证是否为启用状态
    &{status_value}    获取Json报文字段值    ${response.text}    $.data.list[0].status
    # 断言获取的status值是否为0
    Should Be Equal As Strings    &{status_value}[status]    0



启用license信息（鉴权管理）
    [Documentation]    *用例名称* 禁用license信息（鉴权管理）
    ...
    ...    *用例编号* 804a49758c48460ca8f2c6c65b3ea48e
    ...
    ...    *用例版本* V1.0
    ...
    ...    *用例级别* P1
    ...
    ...    *用例类型* 自动化测试
    ...
    ...    *用例作者* liaodemingwx
    ...
    ...    *前置条件*
    ...
    ...    1. 无
    ...
    ...    *操作步骤*
    ...
    ...    所有参数正常取值，调用APP端鉴权查询接口
    ...
    ...    *预期结果*
    ...     启用license信息成功
    ${switch_data}  Create Dictionary    licenseId=${CHECK_GLOBAL1}
    ${response}     发送Post请求    ${host}     /ugc-server/walle/manager/license/switch?uid=test_user_1    data=${switch_data}    headers=${GLOBAL_header2}
    响应报文校验    ${response.text}  code==0





查询license信息开启状态（鉴权管理）
    [Documentation]    *用例名称* 查询license信息（鉴权管理）
    ...
    ...    *用例编号* 804a49758c48460ca8f2c6c65b3ea48e
    ...
    ...    *用例版本* V1.0
    ...
    ...    *用例级别* P1
    ...
    ...    *用例类型* 自动化测试
    ...
    ...    *用例作者* liaodemingwx
    ...
    ...    *前置条件*
    ...
    ...    1. 无
    ...
    ...    *操作步骤*
    ...
    ...    所有参数正常取值，调用APP端鉴权查询接口
    ...
    ...    *预期结果*
    ...     查询license信息成功，并且启用状态下status为1
    ${response}=    发送Get请求    ${host}    /ugc-server/walle/manager/license/query?userId=test_user_1&currentPage=1&pageSize=10    headers=&{GLOBAL_header2}
    # 验证响应状态码（可选）
    响应报文校验    ${response.text}      code == 0
    #获取status的值用于验证是否为启用状态
    &{status_value}    获取Json报文字段值    ${response.text}    $.data.list[0].status
    # 断言获取的status值是否为1
    Should Be Equal As Strings    &{status_value}[status]    1



续费license信息（鉴权管理）
    [Documentation]    *用例名称* 续费license信息（鉴权管理）
    ...
    ...    *用例编号* 804a49758c48460ca8f2c6c65b3ea48e
    ...
    ...    *用例版本* V1.0
    ...
    ...    *用例级别* P1
    ...
    ...    *用例类型* 自动化测试
    ...
    ...    *用例作者* liaodemingwx
    ...
    ...    *前置条件*
    ...
    ...    1. 无
    ...
    ...    *操作步骤*
    ...
    ...    所有参数正常取值，调用APP端鉴权查询接口
    ...
    ...    *预期结果*
    ...     续费license信息成功
#    给data进行赋值
    ${license_renew_data1}      Create Dictionary    &{license_renew_data}  licenseId=${CHECK_GLOBAL1}
    ${response}     发送Post请求    ${host}     /ugc-server/walle/manager/license/renew?uid=test_user_1     data=${license_renew_data1}    headers=${GLOBAL_header2}
    响应报文校验    ${response.text}      code == 0





变更服务器模块开启/关闭状态（鉴权管理）
    [Documentation]    *用例名称* 变更服务器模块开启/关闭状态（鉴权管理）
    ...
    ...    *用例编号* 804a49758c48460ca8f2c6c65b3ea48e
    ...
    ...    *用例版本* V1.0
    ...
    ...    *用例级别* P1
    ...
    ...    *用例类型* 自动化测试
    ...
    ...    *用例作者* liaodemingwx
    ...
    ...    *前置条件*
    ...
    ...    1. 无
    ...
    ...    *操作步骤*
    ...
    ...    所有参数正常取值，调用APP端鉴权查询接口
    ...
    ...    *预期结果*
    ...     能够成功变更license服务器模块
    #    给data进行赋值
    ${license_modelswitch_data1}      Create Dictionary    &{license_modelswitch_data}  licenseId=${CHECK_GLOBAL1}
    ${response}     发送Post请求    ${host}     /ugc-server/walle/manager/license/console/model/switch      data=${license_modelswitch_data1}    headers=${GLOBAL_header2}
    响应报文校验    ${response.text}      code == 0


删除license信息（鉴权管理）
    [Documentation]    *用例名称* 删除license信息（鉴权管理）
    ...
    ...    *用例编号* 804a49758c48460ca8f2c6c65b3ea48e
    ...
    ...    *用例版本* V1.0
    ...
    ...    *用例级别* P1
    ...
    ...    *用例类型* 自动化测试
    ...
    ...    *用例作者* liaodemingwx
    ...
    ...    *前置条件*
    ...
    ...    1. 无
    ...
    ...    *操作步骤*
    ...
    ...    所有参数正常取值，调用APP端鉴权查询接口
    ...
    ...    *预期结果*
    ...     删除license信息成功
    #    给data进行赋值
    ${delete_data}      Create Dictionary    licenseId=${CHECK_GLOBAL1}
    ${response}     发送Post请求  ${host}  /ugc-server/walle/manager/license/delete    data=${delete_data}    headers=${GLOBAL_header2}
    响应报文校验    ${response.text}  code == 0






